/* Example.m  	by Paul Kunz	July 1993
 * An example of HippoDraw plot function.   It's a
 * straight line as in
 *
 *	y = a + b*x
 *
 * Copyright (C)  1993  The Board of Trustees of
 * The Leland Stanford Junior University. All Rights Reserved.
 */

/* import the super class */
#import "PFunction.h"

/* Declare the interface */
@interface Example : PFunction
{
}

- init;
 /*
  * The designated initialzer and the only method that needs to be
  * implemented..
  */
  
@end

@implementation Example 

/* 
 * The following is the function that will be called for plotting
 * 	double x	is the value along the x-axis
 *	double binW	is the width of histogram bins. You function
 *			should use it as overall scale factor.
 *	double *par	is an array of the function's parameters
 *	double example() returns a double value
 */
static double example(double x, double binW, double *par )
{
    double result;

    result = binW * (par[0]  + par[1]*x);
    return result;
}

/* 
 * The following is the only method that needs to be implemented 
 */
- init
{
    [super init];
    
  /* Set the name of the function as it will appear in the function browser */
    [self setTitle:"Example"];
    
  /* Set the function pointer to the static function above */
    [self setFunctionPtr:example];
    
  /* Set the number of parameters of the function */
    [self setNumberArgs:2];
    
  /* The following must be invoked only after the above is done */
    [self registerFunc];
    
  /* Set the name of the parameters as they will appear
   * in the function browser */
    [self setArgName:"yintercept" at:0];
    [self setArgName:"slope" at:1];
    
  /* That's all folks! */
    return self;
}

@end
